package com.chub.study;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.statemachine.config.EnableStateMachine;

// @ComponentScan 和 @SpringBootApplication 是Spring框架中的两个注解。
// @ComponentScan：用于扫描指定的包路径下的标有 @Component, @Service, @Repository 和 @Controller 的类，并注册为Spring应用上下文中的Bean。
// @SpringBootApplication：是一个方便的注解，它包含以下三个注解：
//  @Configuration：表示该类使用Spring基于Java的配置。
//  @ComponentScan：扫描该类所在的包以及子包中的所有组件，包括@Component，@Service，@Repository，@Controller等。
//  @EnableAutoConfiguration：这使得Spring Boot根据类路径设置、其他Bean以及各种属性设置自动配置Bean。例如，如果Spring Contex找到了对应的Servlet容器，它就会自动配置EmbeddedServletContainerFactory的Bean。


@SpringBootApplication(scanBasePackages = {"com.chub.study", "com.chub.study.util"})
//@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
//@MapperScan("mapper")
//@ComponentScan(basePackages = {"com.chub.study"})
@MapperScan("com.chub.study.modules.mapper") //这个目录是找：*Mapper.java文件的
@MapperScan("com.chub.study.modules.dao") //这个目录是找：*Mapper.java文件的
@EnableScheduling
@EnableStateMachine
public class SpringbootStudyMybatisApplication {

    public static void main(String[] args) {
        // SpringApplication.run(SpringbootStudyMybatisApplication.class, args);
        ConfigurableApplicationContext run = SpringApplication.run(SpringbootStudyMybatisApplication.class, args);

    }

}
